package com.xbongbong.paas.help.optional.range;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.domain.entity.PaasFormDataEntity;
import com.xbongbong.paas.field.FilterConditionsPoJo;
import com.xbongbong.paas.pojo.dto.UserInfoDTO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.saas.domain.entity.ProductUserEntity;
import com.xbongbong.saas.domain.entity.UserTeamEntity;

import java.util.List;
import java.util.Map;


/**
 * @author sunshaoxiang
 * @version v1.0
 * @date 2021/9/9 9:53
 * @since v1.0
 */
public interface UserDeptOptionalRangeHandler {

    /**
     * 成员部门自定义范围条件过滤
     * @param filterConditionsPoJo 过滤条件
     * @param optionalRangeDataList 动态关联字段参数
     * @param paasFormDataEntity 表单数据
     * @param userTeam 负责团队信息
     * @param productUserList 产品可见范围信息
     * @param loginUserInfo 当前登陆人信息
     * @throws  XbbException
     * @return java.util.Map<java.lang.String,java.lang.Object>
     * @author sunshaoxiang
     * @Date  2021/9/9 15:18
     * @since v1.0
     **/
    Map<String, Object> filterDeptUserData(FilterConditionsPoJo filterConditionsPoJo, JSONObject optionalRangeDataList, PaasFormDataEntity paasFormDataEntity, Map<Integer, List<UserTeamEntity>> userTeam, List<ProductUserEntity> productUserList, UserInfoDTO loginUserInfo) throws XbbException;
}
